package Day17.FileAndRecursion.Demo01.File;

/**
 * @author hyhWTX
 * @version 1.0
 * @ClassName Demo02File
 * @date 2022年08月26日 17:40
 * @Description: TODO (一句话描述以下该类的功能)
 */

import java.io.File;


/**
 *路径;
 * 绝对路径:是一个完整的路径
 * 以盘行(c:,D:)开始的路径
 * 相对路径:定一个简化的路径
 * 相对指的是相对于当前项目的根目录()
 * 如果使用当前项自的根自录,路径可以奇化书写123.txt(可以省碧项目的根目录)
 *
 * 注意:
 * 1.路径是不区分大小写
 * 2.路径中的文件名称分隔符windows使用反斜杠,反斜杠是转义字符,两个反斜杠代表一个普通的反斜杠
 */

public class Demo02File {
    public static void main(String[] args) {
        /**
         *File的构造方法 
         */
        //show01();
//        show02("D:","a.txt");
//        show02("E:","a.txt");
        show03();
    }



    /**
 * File(String pathname)
 *通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。
 * 参数
 *      String pathname:字符串的路径名称
 *      路径可以是以文件结尾，也可以是文件夹结尾
 *      路径可以是存在，也可以是不存在
 *      创建File对象，只是把字符串路径封装为File对象，不考虑路径的真假情况
 *
 */

    private static void show01() {
        File f1 = new File("D:\\java黑马\\src\\Day17\\FileAndRecursion\\Demo01\\File\\a.txt");
        System.out.println(f1);//重写了toString方法

        File f2 = new File("D:\\java黑马\\src\\Day17\\FileAndRecursion\\Demo01\\File");
        System.out.println(f2);

        File f3 = new File("b.txt");
        System.out.println(f3);
    }

/**
 * File(String parent, String child)
 * 根据 parent路径名字符串和child 路径名字符串创建一个新 File实例。
 *
 * 参数：把路径分成了两个部分
 *      String parent：父路径
 *      String child：子路径
 * 好处：
 *      父路径和子路径，可以单独书写，使用起来非常灵活，父路径和子路径都可以变化
 */
    private static void show02(String parent,String child) {
        File file = new File(parent,child);
        System.out.println(file);
    }


    /**
     *File(File parent, String child)根据 parent 抽象路径名和 child 路径名字符串创建一个新 File实例。
     *
     * 参数：把路径分成两部分
     *      File parent：父路径
     *      String child：子路径
     *
     *  好处：
     *       父路径和子路径,可以单独书写,使用起来非常灵活;父路径和子路径都可以变化
     *       父路径是File类型,可以使用File的方法对路径进行一些操作,再使用路径创建对象
     */
    private static void show03() {
        File parent = new File("c:\\");
        File file = new File(parent, "hello.java");
        System.out.println(file);
    }

}
